home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 22
/
AMIGAplus Sonderheft 22 (2000)(Falke)(DE)(Track 1 of 4)[!].iso
/
Vollversion
/
BankManager Version 1.6
/
BankManager
/
BANK24.MPL
next >
Wrap
Text File
|
1999-11-08
|
23KB
|
1,122 lines
'
' Bankkommunikationsskript für BANK24.
'
' Erste Erstellung: 13.02.1999
' Letzte Änderung : 07.03.1999
' Autor: Volker Bartuseck
'
' basierend auf:
' Bankkommunikationsskript für POSTBANK.
'
' von: Christian Kaben
'
LISTFILE$ := "BankManager:LISTFILE.PBK"
EINUEB$ := "BankManager:EINUEB"
SAMUEB$ := "BankManager:SAMUEB"
SAMLST$ := "BankManager:SAMLST"
EINUEBE$ := "BankManager:EINUEBE"
SAMUEBE$ := "BankManager:SAMUEBE"
SAMLSTE$ := "BankManager:SAMLSTE"
KSTAND$ := "BankManager:KTOSTAND.PBK"
AUSZUG$ := "BankManager:AUSZUG.PBK"
UEBEXTENSION$ := ".PBK"
'Maximale Länge von Empfänger- und Textfeldern.
MAX_EM_LEN:=27
MAX_TX_LEN:=27
'**** Einlesen der Steuerdatei,
' eingerückt bedeutet Zeilen werden überlesen
open #1,LISTFILE$,"r"
'Version
INPUT$:=input$ #1
'Einzelüberweisung
INPUT$:=input$ #1
EINUEB := val(INPUT$)
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'Sammelüberweisung
INPUT$:=input$ #1
SAMUEB := val(INPUT$)
'Sammellastschrift
INPUT$:=input$ #1
SAMLAS := val(INPUT$)
'Kontoauszüge holen?
INPUT$:=input$ #1
AUSZUG := val(INPUT$)
'Datum letzter Kontoauszug
INPUT$:=input$ #1
LAUSZUG$ := INPUT$
'Kontostand abfragen?
INPUT$:=input$ #1
STAND := val(INPUT$)
'PIN
INPUT$:=input$ #1
PIN$ := INPUT$
'Startseite
INPUT$:=input$ #1
STARTSEITE$ := INPUT$
'Kontonummer
INPUT$:=input$ #1
KONTONR$ := INPUT$
'Kennwort 1
INPUT$:=input$ #1
'Kennwort 2
INPUT$:=input$ #1
'Kennwort 3
INPUT$:=input$ #1
'Kennwort 4
INPUT$:=input$ #1
'Einzelüberweisung EURO
INPUT$:=input$ #1
EINUEBE := val(INPUT$)
'Sammelüberweisung EURO
INPUT$:=input$ #1
SAMUEBE := val(INPUT$)
'Sammellastschrift EURO
INPUT$:=input$ #1
SAMLASE := val(INPUT$)
close #1
' Wenn in der Datei keine PIN steht, vom Anwender erfragen
while (len(PIN$) < 5)
split(2)
print "Bitte PIN eingben: ";
PIN$ := input$
split(0)
wend
'**** Zur Startseite der Bank
'
if(STARTSEITE$ <> "")
' Erst einmal auf die Nullseite springen. Damit
' verlasse ich ggf. auch einen ER (normalerweise).
send(ini$+"0"+ter$)
wait(1,0,0,30000)
' Bankrechner aufrufen.
send(ini$+STARTSEITE$+ter$)
wait(1,1,24,30000)
ZEILE$ := line$(1)
' Prüfung auf fehlgeschlagenen Versuch.
if(left$(ZEILE$,7) <> "BANK 24")
split(2)
print "Zugang fehlgeschlagen!"
print "gefunden", left$(ZEILE$,7)
print "soll", "BANK 24"
sleep(5000)
split(0)
goto ENDE:
endif
' Es wird nur die Leitseite überprüft
' Die ER-Verbindung ist bei BANK24 erst bei Aktionen gegeben
' D.h. dort muß nocheinmal die Verbindung geprüft werden
endif
'**** entsprechend der eingstellten die relavaten
' Unterprogramme aufrufen
if(STAND > 0)
gosub KTOSTAND:
endif
MAXUEB := EINUEB
if(MAXUEB > 0)
gosub EINUEB:
endif
MAXUEB := EINUEBE
if(MAXUEB > 0)
gosub EINUEBE:
endif
MAXUEB := SAMUEB
if(MAXUEB > 0)
gosub SAMUEB:
endif
MAXUEB := SAMUEBE
if(MAXUEB > 0)
gosub SAMUEBE:
endif
MAXUEB := SAMLAS
if(MAXUEB > 0)
gosub SAMLAS:
endif
MAXUEB := SAMLASE
if(MAXUEB > 0)
gosub SAMLASE:
endif
if(AUSZUG > 0)
gosub UMSAETZE:
endif
'**** Programmende
ENDE:
end
'**********************************************************
'
' U N T E R P R O G R A M M E
'
'**********************************************************
'
' K O N T O S T A N D
'
KTOSTAND:
' Kontostandmaske aufrufen.
send("6")
wait(1,0,0,30000)
send("2")
wait(1,0,0,30000)
' Konotnummer eintragen
' Kontonummern der Bank24 sind immer passend
send(KONTONR$)
' PIN eintragen
send(PIN$)
wait(1,1,24,30000)
' Bestätigung
send("19")
wait(1,1,24,30000)
'**** Jetzt bin ich auf dem ER der Bank24
' prüfen ob dem so ist
ZEILE$ := line$(4)
' Dort sollte die KtoNr stehen
if(left$(ZEILE$, 7) <> left$(KONTONR$, 7))
split(3)
print "Zugang ER fehlgeschlagen!"
print "gefunden", left$(ZEILE$,7)
print "soll", left$(ZEILE$,7)
sleep(5000)
split(0)
goto E_KTOSTAND:
endif
'**** Ergebnisvariablen initialisieren
DATUM$ := ""
ZEIT$ := ""
STAND$ := ""
STANDE$ := ""
'**** Datum und Uhrzeit auslesen
'
ZEILE$ := line$(21)
DATUM$ := left$(ZEILE$, 8)
ZEIT$ := mid$(ZEILE$, 10, 5)
'**** Betrag DM auslesen
'
ZEILE := 8
ZEILE$ := line$(ZEILE)
' Überprüfen ob Saldo
if (mid$(ZEILE$, 3, 9) = "Ihr Saldo")
' Zeile von Text und Vorzeichen befreien
ZEILE$ := mid$(ZEILE$, 12, 28)
' oder Online-Saldo
else
ZEILE := 11
ZEILE$ := line$(ZEILE)
while ((mid$(ZEILE$, 8, 12) <> "Online-Saldo") and (ZEILE < 22))
ZEILE := ZEILE + 1
ZEILE$ := line$(ZEILE)
wend
' Zeile von Text und Vorzeichen befreien
ZEILE$ := mid$(ZEILE$, 20, 20)
' Datum und Uhrzeit neu bestimmen
DATUM$ := date$
ZEIT$ := time$
endif
' führende Leerzeichen entfernen
while (left$(ZEILE$, 1) = " ")
ZEILE$ := mid$(ZEILE$, 2, 28)
wend
STAND$ := ZEILE$
' Vorzeichen ermitteln und ggf. vorne anfügen
ZEILE$ := line$(ZEILE)
if (right$(ZEILE$, 1) = "-")
STAND$ := "-" + STAND$
endif
'**** Betrag EURO auslesen
'
' Auf die Euroseite wechseln
send("5")
wait(1,1,24,30000)
ZEILE := 8
ZEILE$ := line$(ZEILE)
' Überprüfen ob Saldo
if (mid$(ZEILE$, 3, 9) = "Ihr Saldo")
' Zeile von Text und Vorzeichen befreien
ZEILE$ := mid$(ZEILE$, 12, 28)
' oder Online-Saldo
else
ZEILE := 11
ZEILE$ := line$(ZEILE)
while ((mid$(ZEILE$, 8, 12) <> "Online-Saldo") and (ZEILE < 22))
ZEILE := ZEILE + 1
ZEILE$ := line$(ZEILE)
wend
' Zeile von Text und Vorzeichen befreien
ZEILE$ := mid$(ZEILE$, 20, 20)
endif
' führende Leerzeichen entfernen
while(left$(ZEILE$, 1) = " ")
ZEILE$ := mid$(ZEILE$, 2, 28)
wend
STANDE$ := ZEILE$
' Vorzeichen ermitteln und ggf. vorne anfügen
ZEILE$ := line$(ZEILE)
if (right$(ZEILE$, 1) = "-")
STANDE$ := "-" + STANDE$
endif
'**** Daten in Kontostanddatei schreiben
'
open #1,KSTAND$,"w"
print #1,DATUM$
print #1,ZEIT$
print #1,STAND$
print #1,STANDE$
close #1
'**** Zurück zur Leitseite
'
E_KTOSTAND:
send("0")
wait(1,1,24,30000)
return
'
' E I N Z E L Ü B E R W E I S U N G E N
'
'**** Einzelüberweisung DM
EINUEB:
' Anzahl nicht versandter Überweisungen in Überweisungsdatei
COUNTMAX := MAXUEB
COUNTNAME$ := EINUEB$
gosub COUNTOPEN:
' keiner mehr da, und tschüss
if (COUNTMAX = 0)
return
endif
' Parameter setzten und Überweisungsunterprogramm aufrufen
ISEURO := 0
ANWFILENAME$ := EINUEB$
gosub EUEB:
'**** Unterprogrammende
return
'**** Einzelüberweisung EURO
EINUEBE:
' Anzahl nicht versandter Überweisungen in Überweisungsdatei
COUNTMAX := MAXUEB
COUNTNAME$ := EINUEBE$
gosub COUNTOPEN:
' keiner mehr da, und tschüss
if (COUNTMAX = 0)
return
endif
' Parameter setzten und Überweisungsunterprogramm aufrufen
ISEURO := 1
ANWFILENAME$ := EINUEBE$
gosub EUEB:
'**** Unterprogrammende
return
'**** Überweisungsunterprogramm
'
EUEB:
' Die Auftragsseite aufrufen.
send("7")
wait(1,1,24,30000)
'**** Ab hier Einspielen der Datensätze.
for i:=1 to MAXUEB
' TAN als leer initialisieren, da jeder Auftrag ja seine
' eigene TAN hat (im Gegensatz zu den Sammlern).
TAN$ := ""
if (ISEURO = 0)
' Überweisungen in DM
send("1")
else
' Überweisungen in EURO
send("2")
endif
wait(1,0,0,30000)
' nächste Datei mit Überweisungsdaten festlegen
FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$
' Einspielen des aktuellen Überweisungs-Datensatzes.
GLOBALERROR := 0
gosub SENDENTRY:
'**** der Überweisungs-Datensatz war nicht logisch gelöscht
if (GLOBALERROR = 0)
' Überprüfung auf korrekte Überweisungsausführung
FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$
GLOBALERROR := 0
gosub CHECK:
' Falsche TAN benutzt
if (GLOBALERROR = 99)
' Cursor in das Konto-Nr Feld bringen
send(ter$)
send(ter$)
send(ter$)
send(ter$)
send(ter$)
send(ter$)
send(ter$)
send(ter$)
send(ter$)
' Konotnummer eintragen
'